package br.com.mtech.ctrlliberty.web.mb;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.mtech.ctrlliberty.clientjar.ejb.PesquisaEJBRemote;
import br.com.mtech.ctrlliberty.clientjar.entity.CamposPesquisaVO;
import br.com.mtech.ctrlliberty.clientjar.entity.InternetVO;
import br.com.mtech.ctrlliberty.clientjar.entity.TelefoneVO;
import br.com.mtech.ctrlliberty.clientjar.entity.UsuarioVO;
import br.com.mtech.ctrlliberty.clientjar.exception.BusinessException;
import br.com.mtech.ctrlliberty.web.util.ManagedBeanUtil;
import br.com.mtech.ctrlliberty.web.util.UtilsNLS;

@ManagedBean(name="pesqNet")
@ViewScoped
public class PesquisaInternetBean implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -3519374199327950621L;

	private Long idTelefone;	
	private List<TelefoneVO> listaTelefone;
	private CamposPesquisaVO campos;
	private List<InternetVO> listaInternet;
	
	@EJB
	PesquisaEJBRemote pesquisaEJB;
	
	@PostConstruct
	public void inicializarPagina() {
		
		campos = new CamposPesquisaVO();
		
		try {
			UsuarioVO usuarioLogado = ManagedBeanUtil.recuperarUsuarioLogado();
				
			if(usuarioLogado == null) {
				UtilsNLS.showMessage(UtilsNLS.MSG_PROP_GERAL, "mensagemIndefinida");
					return;
			} else {
				listaTelefone = pesquisaEJB.listarTelefonesPorUsuario(usuarioLogado);				
			} 
			
		} catch (BusinessException e) {
			UtilsNLS.showMessage(UtilsNLS.MSG_PROP_GERAL, "mensagemIndefinida");
		}
				
	}

	public void pesquisarInternet() {
		
		TelefoneVO telSelecionado = null;
		for (TelefoneVO tel : listaTelefone) {
			if(this.getIdTelefone().equals(tel.getId())){
				telSelecionado = tel;
				break;
			}
		}
		
		listaInternet = null;
		
		try {
			listaInternet = pesquisaEJB.pesquisarInternet(telSelecionado, campos);
		} catch (BusinessException e) {
			UtilsNLS.showMessage(UtilsNLS.MSG_PROP_GERAL, "mensagemIndefinida");
		}		
		
	}

	public List<TelefoneVO> getListaTelefone() {
		return listaTelefone;
	}

	public void setListaTelefone(List<TelefoneVO> listaTelefone) {
		this.listaTelefone = listaTelefone;
	}
	
	public CamposPesquisaVO getCampos() {
		return campos;
	}

	public void setCampos(CamposPesquisaVO campos) {
		this.campos = campos;
	}

	public Long getIdTelefone() {
		return idTelefone;
	}

	public void setIdTelefone(Long idTelefone) {
		this.idTelefone = idTelefone;
	}

	public List<InternetVO> getListaInternet() {
		return listaInternet;
	}

	public void setListaInternet(List<InternetVO> listaInternet) {
		this.listaInternet = listaInternet;
	}

	public PesquisaEJBRemote getPesquisaEJB() {
		return pesquisaEJB;
	}

	public void setPesquisaEJB(PesquisaEJBRemote pesquisaEJB) {
		this.pesquisaEJB = pesquisaEJB;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	
	
	
}
